开始之前:

1. 识别二维码输出相关数据

在二维码识别功能下,HUSKYLENS 2 能识别出现在画面中的二维码,可以通过编程统计二维码的总数、获取画面中离十字光标最近的二维码的相关数据并在串口打印出来,可以读取数据有:二维码ID、二维码名称、二维码解码内容、二维码宽度、二维码高度以及二维码中心点的X坐标位置和Y坐标位置。**

以下是示例程序

#include "DFRobot_HuskylensV2.h"
// 创建对象
HuskylensV2 huskylens;


// 主程序开始
void setup() {
	Serial.begin(9600);
	Wire.begin();
  while (!huskylens.begin(Wire)) {
    delay(100);
  }
	huskylens.switchAlgorithm(ALGORITHM_QRCODE_RECOGNITION);
}
void loop() {
	huskylens.getResult(ALGORITHM_QRCODE_RECOGNITION);
	if ((huskylens.available(ALGORITHM_QRCODE_RECOGNITION))) {
		Serial.println((String("二维码总数为:") + String((huskylens.getCachedResultNum(ALGORITHM_QRCODE_RECOGNITION)))));
		Serial.println((String("靠近中心的二维码ID为:") + String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_QRCODE_RECOGNITION), Result, ID)))));
		Serial.println((String("靠近中心的二维码中心点坐标为:") + String((String((String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_QRCODE_RECOGNITION), Result, xCenter))) + String(","))) + String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_QRCODE_RECOGNITION), Result, yCenter)))))));
		Serial.println((String("检测到的第一个二维码的ID为") + String((RET_ITEM_NUM(huskylens.getCachedResultByIndex(ALGORITHM_QRCODE_RECOGNITION, 1-1), Result, ID)))));
	}
	delay(500);
}

当识别出二维码后,观察HuskyLens 2的屏幕会将二维码框出,并在方框的左上角显示解析出的二维码内容,打开串口监视器,观察输出数据。

**运行结果:**如下,对于未学习过的二维码默认输出ID为0,串口输出的二维码内容与HuskyLens 2的屏幕显示的保持一致,对学习过的二维码串口输出的标签ID,标签内容与HUSKYLENS 2 的屏幕显示的保持一致。

Interface Diagram

2. 输出指定二维码的相关数据

当画面中出现多张同一ID的二维码(已学习的标签ID按学习顺序分配,未学习的二维码ID统一为0)时,可以使用以下示例程序统计画面中的同一ID二维码的数量,获取指定一张ID二维码的相关数据。

如何使用二维码识别功能,详细操作请看:二维码识别使用说明

示例程序下

#include "DFRobot_HuskylensV2.h"
// 创建对象
HuskylensV2 huskylens;


// 主程序开始
void setup() {
	Serial.begin(9600);
	Wire.begin();
  while (!huskylens.begin(Wire)) {
    delay(100);
  }
	huskylens.switchAlgorithm(ALGORITHM_QRCODE_RECOGNITION);
}
void loop() {
	huskylens.getResult(ALGORITHM_QRCODE_RECOGNITION);
	if ((huskylens.available(ALGORITHM_QRCODE_RECOGNITION))) {
		if (((huskylens.getCachedResultByID(ALGORITHM_QRCODE_RECOGNITION, 1) != NULL))) {
			Serial.println((String("ID1二维码的总数为:") + String((huskylens.getCachedResultNumByID(ALGORITHM_QRCODE_RECOGNITION, 1)))));
			Serial.println((String("ID1二维码的内容为:") + String((RET_ITEM_STR(huskylens.getCachedResultByID(ALGORITHM_QRCODE_RECOGNITION, 1), Result, content)))));
			Serial.println((String("第一个ID1二维码的中心点坐标为") + String((String((RET_ITEM_NUM(huskylens.getCachedResultByID(ALGORITHM_QRCODE_RECOGNITION, 1), Result, xCenter))) + String((String(",") + String((RET_ITEM_NUM(huskylens.getCachedResultByID(ALGORITHM_QRCODE_RECOGNITION, 1), Result, yCenter)))))))));
		}
	}
	delay(500);
}

**运行结果:**如下,当画面中出现多个二维码时,HUSKYLENS 2 可以识别到所有二维码(未学习和已学习的),通过串口能观察统计的当前画面的二维码总数。同时串口输出打印指定的ID为1的二维码的相关数据。

Interface Diagram